package com.swsc.solarverse.dao.mapper.analysis;

import com.swsc.solarverse.common.mybatis.BasePlusMapper;
import com.swsc.solarverse.dao.entity.analysis.InverterDayDO;
import com.swsc.solarverse.model.InverterGenerationPowerBO;
import com.swsc.solarverse.model.StationGenerationPowerBO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.Collection;
import java.util.List;

/**
 * <p>
 *  Mapper 接口
 * </p>
 *
 * @author AutoGenerator
 * @since 2022-09-04
 */
@Mapper
public interface InverterDayMapper extends BasePlusMapper<InverterDayDO> {
    /**
     * 发电量
     * @param tenantNo
     * @param organNo
     * @param year
     * @param month
     * @param day
     * @return
     */
    StationGenerationPowerBO dailyGenerationPower(@Param("tenantNo") Integer tenantNo,
                                             @Param("organNo") Integer organNo,
                                             @Param("year") Short year,
                                             @Param("month") Byte month,
                                             @Param("day") Byte day);

    /**
     * 统计
     * @param organNoIn
     * @param year
     * @param month
     * @param day
     * @return
     */
    StationGenerationPowerBO sumDailyGenerationPower(@Param("organNoIn") Collection<Integer> organNoIn,
                                                     @Param("year") Short year,
                                                     @Param("month") Byte month,
                                                     @Param("day") Byte day);
    /**
     * 发电量
     * @param tenantNo
     * @param organNo
     * @param year
     * @param month
     * @return
     */
    StationGenerationPowerBO monthlyGenerationPower(@Param("tenantNo") Integer tenantNo,
                                                  @Param("organNo") Integer organNo,
                                                  @Param("year") Short year,
                                                  @Param("month") Byte month);
    /**
     * 发电量
     * @param tenantNo
     * @param organNo
     * @param year
     * @return
     */
    StationGenerationPowerBO yearlyGenerationPower(@Param("tenantNo") Integer tenantNo,
                                                    @Param("organNo") Integer organNo,
                                                    @Param("year") Short year);
    /**
     * 日发电量
     * @param year
     * @param month
     * @param day
     * @return
     */
    List<InverterGenerationPowerBO> inverterDailyGenerationPower(@Param("year")Short year, @Param("month")Byte month, @Param("day")Byte day);
    /**
     * 月发电量
     * @param year
     * @param month
     * @return
     */
    List<InverterGenerationPowerBO> inverterMonthlyGenerationPower(@Param("year")Short year, @Param("month")Byte month);
    /**
     * 年发电量
     * @param year
     * @return
     */
    List<InverterGenerationPowerBO> inverterYearlyGenerationPower(@Param("year")Short year);

    /**
     * 发电量
     * @param year
     * @param month
     * @param day
     * @return
     */
    List<StationGenerationPowerBO> stationDailyGenerationPower(@Param("year")Short year, @Param("month")Byte month, @Param("day")Byte day);

    /**
     * 发电量
     * @param year
     * @param month
     * @return
     */
    List<StationGenerationPowerBO> stationMonthlyGenerationPower(@Param("year")Short year, @Param("month")Byte month);

    /**
     * 发电量
     * @param year
     * @return
     */
    List<StationGenerationPowerBO> stationYearlyGenerationPower(@Param("year")Short year);


}
